CC = gcc
BIN = infix
OBJS = emitter.o error.o init.o lexer.o parser.o symbol.o

all: main.c $(OBJS)
	$(CC) main.c $(OBJS) -o $(BIN)

init.o: init.c init.h global.h
	$(CC) init.c -c

lexer.o: lexer.c lexer.h global.h
	$(CC) lexer.c -c

parser.o: parser.c parser.h global.h
	$(CC) parser.c -c

emitter.o: emitter.c emitter.h global.h
	$(CC) emitter.c -c

error.o: error.c error.h global.h
	$(CC) error.c -c

symbol.o: symbol.c symbol.h global.h
	$(CC) symbol.c -c

clean:
	rm -f *.o rm $(BIN)

